import {ControlSource} from "@/store/types/device";
// @ts-ignore
import {LostControlActionInCommandFLight, WaylineLostControlActionInCommandFlight} from "@/api/drone-control/drone";

export enum ControlSourceChangeType {
    Flight = 1,
    Payload = 2,
}

// 控制权变化消息
export interface ControlSourceChangeInfo {
    sn: string,
    type: ControlSourceChangeType,
    control_source: ControlSource
}

// 飞向目标点结果
export interface FlyToPointMessage {
    sn: string,
    result: number,
    message: string,
}

// 一键起飞结果
export interface TakeoffToPointMessage {
    sn: string,
    result: number,
    message: string,
}

// 设备端退出drc模式
export interface DrcModeExitNotifyMessage {
    sn: string,
    result: number,
    message: string,
}

// 飞行控制模式状态
export interface DrcStatusNotifyMessage {
    sn: string,
    result: number,
    message: string,
}

export const WaylineLostControlActionInCommandFlightOptions = [
    { label: 'Continue', value: WaylineLostControlActionInCommandFlight.CONTINUE },
    { label: 'Execute Lost Action', value: WaylineLostControlActionInCommandFlight.EXEC_LOST_ACTION }
]

export const LostControlActionInCommandFLightOptions = [
    { label: 'Return Home', value: LostControlActionInCommandFLight.RETURN_HOME },
    { label: 'Hover', value: LostControlActionInCommandFLight.HOVER },
    { label: 'Landing', value: LostControlActionInCommandFLight.Land }
]

// 云台重置模式
export enum GimbalResetMode {
    Recenter = 0,
    Down = 1,
    RecenterGimbalPan = 2,
    PitchDown = 3,
}

export const GimbalResetModeOptions = [
    { label: 'Gimbal Recenter', value: GimbalResetMode.Recenter },
    { label: 'Gimbal down', value: GimbalResetMode.Down },
    { label: 'Recenter Gimbal Pan', value: GimbalResetMode.RecenterGimbalPan },
    { label: 'Gimbal Pitch Down', value: GimbalResetMode.PitchDown }
]
